package com.yzy.fly.loader;

import com.yzy.fly.entity.role.FlyTable;
import com.yzy.fly.entity.role.FlyTableColumn;
import com.yzy.fly.mapper.FlyModelMapper;
import com.yzy.fly.mapper.FlyTableColumnMapper;
import com.yzy.fly.mapper.FlyTableMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 模型加载器
 */
@Component
public class TableLoader {
    @Autowired
    private FlyModelMapper flyModelMapper;
    @Autowired
    private FlyTableMapper flyTableMapper;
    @Autowired
    private FlyTableColumnMapper flyTableColumnMapper;

    public FlyTable loader(int tableId) {
        return loaderTableId(tableId);
    }

    public FlyTable loaderTableId(int tableId) {
        FlyTable flyTable = flyTableMapper.selectById(tableId);
        return loader(flyTable);
    }
    public FlyTable loaderByModelId(int modelId) {
        FlyTable flyTable = flyTableMapper.selectByModelId(modelId);
        return loader(flyTable);
    }

    public FlyTable loader(FlyTable flyTable) {
        if (flyTable != null) {
            Integer tableId = flyTable.getId();
            List<FlyTableColumn> flyTableColumns = flyTableColumnMapper.selectAllByTableId(tableId);
            flyTable.setColumns(flyTableColumns);
        }
        return flyTable;
    }
}
